
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>ducrss_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>ducrss_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void ducrss_c ( ConstSpiceDouble s1  [6],
                   ConstSpiceDouble s2  [6],
                   SpiceDouble      sout[6] ) 

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
 
   Compute the unit vector parallel to the cross product of 
   two 3-dimensional vectors and the derivative of this unit vector. 
 </PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
   None. 
</PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
   VECTOR
   DERIVATIVE


</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
 
 
   VARIABLE  I/O  DESCRIPTION 
   --------  ---  -------------------------------------------------- 
   s1        I   Left hand state for cross product and derivative. 
   s2        I   Right hand state for cross product and derivative. 
   sout      O   Unit vector and derivative of the cross product. 
 </PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
   s1       This may be any state vector.  Typically, this 
            might represent the apparent state of a planet or the 
            Sun, which defines the orientation of axes of 
            some coordinate system. 
 
   s2       Any state vector. 
 </PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
 
   sout     This variable represents the unit vector parallel to the 
            cross product of the position components of 's1' and 's2' 
            and the derivative of the unit vector. 
 
            If the cross product of the position components is 
            the zero vector, then the position component of the 
            output will be the zero vector.  The velocity component 
            of the output will simply be the derivative of the 
            cross product of the position components of 's1' and 's2'. 
 
            'sout' may overwrite 's1' or 's2'. 
 </PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
 
   Error free. 
 
   1) If the position components of 's1' and 's2' cross together to 
      give a zero vector, the position component of the output 
      will be the zero vector.  The velocity component of the 
      output will simply be the derivative of the cross product 
      of the position vectors. 
 
   2) If 's1' and 's2' are large in magnitude (taken together, 
      their magnitude surpasses the limit allowed by the 
      computer) then it may be possible to generate a 
      floating point overflow from an intermediate 
      computation even though the actual cross product and 
      derivative may be well within the range of double 
      precision numbers. 
</PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
 
   None. 
</PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
 
   <b>ducrss_c</b> calculates the unit vector parallel to the cross product 
   of two vectors and the derivative of that unit vector. 
   The results of the computation may overwrite either of the 
   input vectors. 
 </PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
 
   One often constructs non-inertial coordinate frames from 
   apparent positions of objects.  However, if one wants to convert 
   states in this non-inertial frame to states in an inertial 
   reference frame, the derivatives of the axes of the non-inertial 
   frame are required.  For example consider an Earth meridian 
   frame defined as follows. 
 
      The z-axis of the frame is defined to be the vector 
      normal to the plane spanned by the position vectors to the 
      apparent Sun and to the apparent body as seen from an observer. 
 
      Let 'sun' be the apparent state of the Sun and let 'body' be the 
      apparent state of the body with respect to the observer.  Then 
      the unit vector parallel to the z-axis of the Earth meridian 
      system and its derivative are given by the call: 
 
      <b>ducrss_c</b> ( sun, body, zzdot );
 </PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
 
   No checking of 's1' or 's2' is done to prevent floating point 
   overflow. The user is required to determine that the magnitude 
   of each component of the states is within an appropriate range 
   so as not to cause floating point overflow. In almost every case 
   there will be no problem and no checking actually needs to be 
   done. 
</PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
 
   N.J. Bachman    (JPL) 
   W.L. Taber      (JPL) 
   E.D. Wright     (JPL)
 </PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
 
   -CSPICE Version 1.0.0, 23-NOV-2009 (EDW)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
 
   Compute a unit cross product and its derivative 
 </PRE>
<h4>Link to routine ducrss_c source file <a href='../../../src/cspice/ducrss_c.c'>ducrss_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:21 2010</pre>

</body>
</html>

